#ifndef __INITFUNC__
#define __INITFUNC__
#include "header.h"
#define SERVER_PATH "/home/tk/virturall"
/*
实现了服务器初始化时用到的必要函数
*/
#include "../_public.h"
#include "myQueue.h"


// 线程状态结构体
typedef struct
{
    pthread_t thread_id[THREADNUM]; // 所有子线程id
    pthread_mutex_t mutex; // 互斥锁
    pthread_cond_t cond; // 条件变量

    int exitFlag; // 退出标志，收到-1表示退出
    int threadNum; // 线程个数
    queue_st q; // 存放连接的队列

}status_st;

// 信号退出函数
void EXIT(int sig_no);

// 初始化线程池
int initThreadControl(status_st* threadControl,pthread_t* threadIds);
// 服务端socket连接、bind和linsten
int initSockBindListen(int* listenFd,char* ip,int port);

// 获取socket连接
int getSocktLink(int listen_fd,int* socket_fd);
// 增加epoll监听对象
int addEpollObj(int epollFd,int fd);
// 线程工作函数
void* worker(void* args);

int getAbsPath(qNode_st* node,char* absPath);

/*
 * 对客户端发送过来的数据载体进行解析
 * 创建人：王勇的函数逻辑，唐凯进行返回值修改
 * 创建事件：2024/07/07
 * */
int handle_client_request(qNode_st *conn,splictDataCarrier_st* splictDataCarriet);

#endif
